package com.agentframework.core.annotation;

import org.springframework.beans.factory.support.BeanNameGenerator;
import org.springframework.context.annotation.Import;

import java.lang.annotation.*;

/**
 * 启用 Action 组件扫描
 * 用于自动扫描和注册带有 @Action、@Agent、@Environment 注解的组件
 *
 * @author wangjun
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import(AgentScannerRegistrar.class)
public @interface AgentScan {
    /**
     * 要扫描的包路径
     */
    String[] value() default {};

    String[] basePackages() default {};

    Class<?>[] basePackageClasses() default {};

    /**
     * Bean 名称生成器
     * 用于自定义生成的 Bean 名称
     */
    Class<? extends BeanNameGenerator> nameGenerator() default BeanNameGenerator.class;

}
